package ningbo.array;

import sun.security.pkcs11.wrapper.CK_X9_42_DH2_DERIVE_PARAMS;

import java.util.Arrays;

/**
 * @Author 宁铂
 * @Date 2021/7/7 8:43
 * @Version 1.0
 */
public class TestCreateArray {
    /** 本类用于练习数组的创建和使用 */
    public static void main(String[] args) {
        /** 创建数组，并存入数据 “Hello” */

        //静态数组 -- 需要指定具体的元素，元素之间用逗号隔开
        char[] c1 = {'H','e','l','l','o'};
        char[] c2 = new char[]{'H','e','l','l','o'};

        //动态数组 -- 不需要指定具体的元素
        //在内存中开辟一块连续的空间存放5个字符
        char[] c3 = new char[5];

        /**
         * 通过下标来操作数组中的元素
         * 数组下标是从0开始的,下标的最大值是数组的长度减1 */
        c3[0] = 'H'; //通过下标给数组赋值
        c3[1] = 'e';
        c3[2] = 'l';
        c3[3] = 'l';
        c3[4] = 'o';

        System.out.println(c1);
        System.out.println(c2);
        System.out.println(c3);

        //创建String类型的数组
        String[] c4 = {"a","b","c","d"};
        /** 关于数组的打印，char类型在底层做了处理
         *  可以直接打印出数组中的具体元素
         *  但是除了char类型以外的所有数组
         *  都不可以直接打印数组中的具体内容
         *  如果想要查看数组中的具体元素，需要使用工具类Arrays
         *  Arrays.toString(数组名)，需要导包
         * */
        System.out.println(c4);
        System.out.println(Arrays.toString(c4));

        //获取数组的长度 -- 数组存放元素的个数
        /** 数组一旦创建，长度不可改变
         *  可以通过 数组名.length 来获取数组的长度/元素个数
         * */
        System.out.println(c1.length);
        System.out.println(c4.length);
    }
}
